package set_;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @Author 小闽
 * @Date 2024/11/1 10:02
 * @PackageName: set_
 * @ClassName: SetMethod
 * @Description: set集合方法
 * @Version 1.0
 */
@SuppressWarnings({"all"})
public class SetMethod {
    public static void main(String[] args) {
        // 1. 以Set接口的实现类HashSet演示Set接口
        // 2. set接口实现类的对象（Set接口对象）不能存放重复元素，可以添加一个null
        // 3. set接口对象存放数据是无序（即添加的顺序和取出的顺序不一致）
        // 4. 注意：取出的顺序虽然不是添加的顺序，但是他是固定的。
        Set set = new HashSet();
        set.add("john");
        set.add("lucy");
        set.add("john"); // 重复
        set.add("jack");
        set.add(null);
        set.add(null); // 再次添加null
        for (int i = 0; i < 10; i++) {
            System.out.println("set=" + set);
        }
        // 遍历方式
            // 方式1： 使用迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }
        System.out.println();
          // 方式2：使用增强for
        for (Object object : set) {
            System.out.println("obj= " + object);
        }
        // 3. Set接口对象不能使用索引的方式来获取元素
//        for (int i = 0; i < set.size(); i++) {
//            System.out.println(set.get(i));
//        }
    }
}
